<?php
/**
 * ErrorController
 * 
 * @author naspeh
 * @version $Id: ErrorController.php 659 2008-06-15 11:34:26Z naspeh $
 */
class ErrorController extends Core_Controller_Action
{
    /**
     * Ошибка
     *
     */
    public function errorAction ()
    {
        $this->getResponse()->clearBody('default');
        $errors = $this->_getParam('error_handler');
        $errors404 = array(
            Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER, 
            Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION        
        );
        if (404 == $errors->exception->getCode() || in_array($errors->type, $errors404)) {
            $this->_forward('error404');
        }
        if (403 == $errors->exception->getCode()) {
            $this->_forward('error403');
        }
        Core_Message::add('Системная ошибка, попробуйте позже.', Core_Message::TYPE_ERROR);
        $this->_helper->viewRenderer->setNoRender();
    }
    /**
     * Доступ запрещен
     *
     */
    public function error403Action()
    {
        Core_Message::add('<b>Доступ запрещен.</b>', Core_Message::TYPE_ERROR);
        $this->_helper->viewRenderer->setNoRender();
    }
    /**
     * Страница не найдена
     *
     */
    public function error404Action()
    {
        Core_Message::add('<b>Страница не найдена. Неправильно указан URL.</b>', Core_Message::TYPE_ERROR);
        $this->_helper->viewRenderer->setNoRender();
    }
}
